#ifndef _L_BV_TREE_120118_H
#define _L_BV_TREE_120118_H

#include "120118/BoundingVolume.h"
#include "120118/BVNode.h"
#include "120118/BVTree.h"
#include "120118/BVTreeIter.h"
#include "120118/NormalCone.h"

#include <lmacros.h>

LLIB_BEGIN
namespace geom {

#pragma region The BVNode & BVTree type definitions

/* The BVNode type definitions */
/*             BV tree          BV type   NC type              */
typedef BVNode<BVTREE_TYPE_CBT, BV_6DOP,  EmptyClass>   BVNode0;
typedef BVNode<BVTREE_TYPE_CBT, BV_14DOP, EmptyClass>   BVNode1;
typedef BVNode<BVTREE_TYPE_CBT, BV_18DOP, EmptyClass>   BVNode2;
typedef BVNode<BVTREE_TYPE_CBT, BV_26DOP, EmptyClass>   BVNode3;
typedef BVNode<BVTREE_TYPE_CBT, BV_6DOP,  NormalCone>   BVNode4;
typedef BVNode<BVTREE_TYPE_CBT, BV_14DOP, NormalCone>   BVNode5;
typedef BVNode<BVTREE_TYPE_CBT, BV_18DOP, NormalCone>   BVNode6;
typedef BVNode<BVTREE_TYPE_CBT, BV_26DOP, NormalCone>   BVNode7;

/* The BVTree type definitions */
typedef BVTree_CBT<BVNode0>     BVTree0;
typedef BVTree_CBT<BVNode1>     BVTree1;
typedef BVTree_CBT<BVNode2>     BVTree2;
typedef BVTree_CBT<BVNode3>     BVTree3;
typedef BVTree_CBT<BVNode4>     BVTree4;
typedef BVTree_CBT<BVNode5>     BVTree5;
typedef BVTree_CBT<BVNode6>     BVTree6;
typedef BVTree_CBT<BVNode7>     BVTree7;

#pragma endregion

} // end of namespace geom
LLIB_END

#endif
